package rpcx_label_center

import (
	"time"
)

// 任务表，状态
const (
	StatusRecTask任务已停止  = -4
	StatusRecTask任务发送失败 = -3
	StatusRecTask任务推流失败 = -2
	StatusRecTask关系建立失败 = -1

	StatusRecTask已创建任务  = 10
	StatusRecTask任务推流成功 = 20
	StatusRecTask准备任务中  = 30
	StatusRecTask任务执行中  = 40
	StatusRecTask任务完成   = 50
)

// 任务记录

// 任务 查询 请求
type ReqSearchRecTask struct {
	IdRecTask int64 `json:"IdRecTask"` //任务Id(雪花)
	// IdSubscribe int64 `json:"IdSubscribe"` //订阅Id

	// DeviceId string `json:"DeviceId"` //设备国标Id

	Status int8 `json:"Status"` //状态 正常=10 禁用=-1

	Page        int64    `json:"Page"`                  //必填 指定返回页码号
	Limit       int64    `json:"Limit"`                 //必填 指定返回每页条数
	FieldOrders []string `json:"FieldOrders,omitempty"` //指定要排序的字段数组，默认升序，降序加前缀-，如 ["-Id", "Name"] 按Id降序Name升序排列

	Log Log `json:"Log,omitempty"` //追踪日志
}

type RespRecTask struct {
	AppId string `json:"AppId"` //应用Id 默认=rtp

	IdRecTask int64 `json:"IdRecTask"` //任务Id(雪花)

	IdSubscribe    int64 `json:"IdSubscribe"`    //订阅Id
	IdRecSubscribe int64 `json:"IdRecSubscribe"` //子订阅Id
	TypeSubscribe  int8  `json:"TypeSubscribe"`  //订阅类型 1:历史 2:实时

	DeviceId            string    `json:"DeviceId"`            //设备国标Id
	DateTimeStart       time.Time `json:"DateTimeStart"`       //计划开始日期时间
	SecondLen           int       `json:"SecondLen"`           //向后抽图多少秒
	DateTimeEnd         time.Time `json:"DateTimeEnd"`         //计划结束日期时间
	DateTimeStreamStart time.Time `json:"DateTimeStreamStart"` //区间中最早起点(实际起点)
	DateTimeStreamEnd   time.Time `json:"DateTimeStreamEnd"`   //区间中最晚终点(实际终点)

	StreamId   string `json:"StreamId"`   //当前流Id
	StreamUrl  string `json:"StreamUrl"`  //当前流地址
	AppCode    string `json:"AppCode"`    //App编号
	MediaId    string `json:"MediaId"`    //媒体中心Id
	StructHost string `json:"StructHost"` //媒体中心任务主机
	HttpPort   string `json:"HttpPort"`   //媒体中心任务端口

	Status     int8   `json:"Status"`     //状态 正常=10 禁用=-1
	StatusText string `json:"StatusText"` //状态 描述

	Remark string `json:"Remark"` //状态备注

	TimeCreate time.Time `json:"TimeCreate"` //记录创建时间
	TimeUpdate time.Time `json:"TimeUpdate"` //最后修改时间
	TimeDelete time.Time `json:"TimeDelete"` //删除时间
}

// 响应 查询列表
type RespRecTasks struct {
	Total    int64         `json:"Total"`    //返回列表的总条数
	RecTasks []RespRecTask `json:"RecTasks"` //返回列表对象
}
